package main

import (
	"Ginproject/basic/day02/InterfaceProgram/infra"
	"fmt"
)

// 接口
/*
	强类型语言：熟悉接口的概念  java php
	弱类型语言： 没有（少）接口的概念
	***接口的详解：使用Google Guice 实现依赖注入
	小孩才分对错，大人权衡利弊
*/
//type Traversal interface {
//	Traversal()
//}

//func retrieve(url string) string {
//
//}

func getRetriever() retriever {
	return infra.Retriever{}
}

// ?:  Something that can "Get"      ?是什么
// 这是接口
type retriever interface {
	Get(string) string
}

func main() {
	//traversal := getTraversal()
	//traversal.Traverse()

	//fmt.Println(retrieve("https://www.imooc.com"))
	var retriever = getRetriever()
	//retriever := infra.Retriever{}
	fmt.Println(retriever.Get("https://www.imooc.com"))

}
